package com.hy;

/**
 * Created With IntelliJ IDEA.
 * Descriptions:两数之和 II - 输入有序数组
 * User:Mr.Du
 * Date:2024/8/17
 * Time:16:00
 */
public class TwoSum {


    /**
     * 寻找数组中两个数之和等于目标值的索引
     *
     * @param nums 一个整数数组
     * @param target 目标值，需要找到两个数的和
     * @return 一个包含两个数的索引的数组，如果找不到则返回空数组
     */
    public int[] twoSum(int[] nums, int target) {
        // 初始化左右指针
        int l = 0, r = nums.length - 1;
        // 当左指针小于右指针时，执行循环
        while(l < r){
            // 如果找到两数之和等于目标值，则返回这两个数的索引
            if(nums[l] + nums[r] == target) return new int[]{l, r};
            // 如果两数之和大于目标值，则将右指针左移
            else if(nums[l] + nums[r] > target) r--;
            // 如果两数之和小于目标值，则将左指针右移
            else l++;
        }
        // 如果找不到满足条件的两个数，则返回空数组
        return new int[]{};
    }
}
